Micron Document
pintobyte rngit

Node / public / precursor-lxmfchat.git / files / xous-core / docs / build-rust-sysroot.ps1

Displaying Raw • Download

xous-core/docs/build-rust-sysroot.ps1 main (17e4bce8) Text, 2.25 KB

$rust_root=(Get-Location).ToString() + "\\rust"
$env:RUSTC_BOOTSTRAP=1
$env:RUST_TARGET_PATH="$rust_root\\xous-sysroot"
$env:RUSTFLAGS="--sysroot $rust_root\\xous-sysroot"
$env:CC="riscv64-unknown-elf-gcc"
$env:AR="riscv64-unknown-elf-ar"

# Get the current rust tag (currently 1.41.0)
$rust_tag=(rustc -Vv | Select-String "release: ").ToString().Replace("release: ", "")

# Clone the latest Rust source
# git stash
Write-Output "Checking out Rust $rust_tag-xous..."
git clone 'git@github.com:xous-os/rust.git' rust
git checkout $rust_tag-xous
git submodule init
git submodule sync
git submodule update

Set-Location $rust_root/src
git clone --recursive https://github.com/rust-lang/compiler-builtins.git

mkdir -Force $rust_root\\xous-sysroot
mkdir -Force $rust_root\\xous-sysroot\\lib\\rustlib\\riscv32imac-unknown-xous-elf\\lib

Write-Output "Creating riscv32imac-unknown-xous-elf.json..."
$orig_json=(rustc --target riscv32imac-unknown-none-elf --print target-spec-json -Z unstable-options | Where-Object { $_ -notmatch "is-builtin" })
$orig_json.replace('"os": "none",', '"os": "xous",') | Out-File -FilePath $rust_root\\xous-sysroot\\riscv32imac-unknown-xous-elf.json -Encoding ascii

Set-Location $rust_root/src/libcore
cargo build --release --target riscv32imac-unknown-xous-elf
Copy-Item $rust_root/target/riscv32imac-unknown-xous-elf/release/libcore.rlib $rust_root\\xous-sysroot\\lib\\rustlib\\riscv32imac-unknown-xous-elf\\lib

Set-Location $rust_root/src/liballoc
cargo build --release --target riscv32imac-unknown-xous-elf
Copy-Item $rust_root/target/riscv32imac-unknown-xous-elf/release/liballoc.rlib $rust_root\\xous-sysroot\\lib\\rustlib\\riscv32imac-unknown-xous-elf\\lib

Set-Location $rust_root/src/compiler-builtins
cargo build --release --target riscv32imac-unknown-xous-elf --features mem
Copy-Item target/riscv32imac-unknown-xous-elf/release/libcompiler_builtins.rlib $rust_root\\xous-sysroot\\lib\\rustlib\\riscv32imac-unknown-xous-elf\\lib

Set-Location $rust_root/src/libstd
cargo build --release --target riscv32imac-unknown-xous-elf
Copy-Item $rust_root/target/riscv32imac-unknown-xous-elf/release/libstd.rlib $rust_root\\xous-sysroot\\lib\\rustlib\\riscv32imac-unknown-xous-elf\\lib

Set-Location $rust_root

Served by rngit 1.4.0 - Generated in 0.13s